Computer programs allow computers to perform many useful tasks. However, in order to write computer programs, and especially so-called "objected oriented" computer programs, one must have the necessary computer programming skills and knowledge of the syntax of a particular programming language. Developing the necessary programming skills and knowledge requires the investment of a significant amount of time, and usually money. Hence, it is a goal of the art to facilitate the development of computer programs by non-computer programmers or by programmers who only have rudimentary training.
One prior art system disclosed in U.S. Pat. No. 5,163,130 issued to Hullot on Nov. 10, 1992 and assigned to NeXT Computer, Inc., advanced toward this goal by using graphical user interface techniques for the development and configuration of a graphical interface for programs that were already at least partially written. However, such a prior an system did not permit the development of complete, arbitrary, computer programs from a collection of subprograms. This is because the prior art system was limited in its ability to handle outlets.
An "outlet" is a data structure or object that provides information that is needed to create connections between a particular "source" object and one or more "destination" objects. According to the present state of the art, outlets are defined in "source" objects that are specifically designed to interwork with other objects. By virtue of an outlet's name each outlet provides to the user of a program configuration system an indication of the kind of "destination" object to which a source object must be connected to function properly.